package com.thp.bigdata.secondarySort;

import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Partitioner;

import com.thp.bigdata.secondarySort.OrderBean;

/**
 * 自定义的Paritioner：
 * 		让相同的id分到相同的partition 进行处理
 * @author 汤小萌
 *
 */
public class ItemIdPartitioner extends Partitioner<OrderBean, NullWritable> {
	
	/**
	 * 相同id的OrderBean会发往相同的parttion
	 * 而且产生的分区数，是会跟用户设置的 reduce task保持一致
	 * numPartitions  就是 设置的 reduce task
	 */
	@Override
	public int getPartition(OrderBean bean, NullWritable value, int numPartitions) {
		return (bean.getItemId().hashCode() & Integer.MAX_VALUE) % numPartitions;
	}

}
